# 打印菱形   1.将菱形分为上下对称两部分打印
#         2.判断菱形行数的奇偶 偶数上下完全对称 奇数下部分少一行
#  *          *
# ***        ***
# *****      *****
# ***      *******
#  *       *******
#           *****
#            ***
#             *
# range(开始元素，结尾元素，步长)
# // 两个数除法运算，取整 % 取余   / 正常除
row = int(input("请输入行数："))
if row % 2 == 0:
    rows = row // 2
else:
    rows = row // 2 + 1
# 打印上半部分
for i in range(1, rows + 1):
    print(' ' * (rows - i) + '*' * (2 * i - 1))
# 打印下半部分
for j in range(row // 2, 0, -1):
    # print(" ",end=" ")
    print(' ' * (rows - j) + '*' * (2 * j - 1))

# 打印水仙花数
#指一个 ( n ) 位的数，它的每个位上的数字的 ( n ) 次幂之和等于它本身。最常见的水仙花数是三位数的情况，即各位数字的立方和等于该数本身。
# 如，153 是一个水仙花数，因为 ( 1^3 + 5^3 + 3^3 = 153 )。
for i in range(100, 1000): #三位数的范围
    a = i // 100
    b = i // 10 % 10
    c = i % 10
    if a ** 3 + b ** 3 + c ** 3 == i:
        print(i)

# 打印九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print("%d*%d=%d" % (j, i, i * j), end=" ")
    print()

# 完数：指一个正整数如果恰好等于它的所有除自身之外的正因数之和
# 如，6 的正因数有 1、2、3，而 1 + 2 + 3 = 6，因此 6 是一个完数。
for i in range(1, 1000):
    sum = 0
    for j in range(1, i):
        if i % j == 0:
            sum += j
    if sum == i:
        print(i)
        break

# 质数
for i in range(1, 100):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        print(i)


# 斐波那契数列：1，1，2，3，5，8，13，21.。。
a,b = 1,1
for i in range(1, 10):
    if i == 1:
        print(1)
    elif i == 2:
        print(1)
    else:
        print(a + b)
        a, b = b, a + b

def fib(n):
    if(n==1) or (n==2):
        return 1
    return fib(n-1)+fib(n-2)
print(fib(8))
